﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Tecnosop.Dominio;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Tecnosop.WebUI.Models
{
    public class FacturaVentaDirectaViewModel
    {
        public int NUMERO_FACTURA { get; set; }
        public string RAZON_SOCIAL { get; set; }
        public string RUT_CLIENTE { get; set; }

        public CLIENTE CLIENTE { get; set; }
        public FACTURA FACTURA { get; set; }

        public IEnumerable<DetalleFacturaVentaDirectaViewModel> DETALLE_FACTURA { get; set; }
        public int TOTAL { get; set; }
    }

    public class DetalleFacturaVentaDirectaViewModel
	{
        public DetalleFacturaVentaDirectaViewModel()
        {
            this.CODIGO_ITEM = 0;
            this.CANTIDAD = 1;
            this.PRECIO = null;
        }

        public int NUMERO_FACTURA { get; set; }
        public string RAZON_SOCIAL { get; set; }

        [HiddenInput(DisplayValue = false)]
        public int NUMERO_LINEA_DETALLE { get; set; }

        [DisplayName("Código ítem")]
        [Remote("ValidaNumeroItem", "FacturaVentaDirecta", ErrorMessage = "El número del ítem ingresado no existe en la base de datos")]
        public int CODIGO_ITEM { get; set; }

        [HiddenInput(DisplayValue = true)]
        [DisplayName("Descripción")]
        public string DESCRIPCION_ITEM { get; set; }

        [DisplayName("Garantía")]
        public string GARANTIA { get; set; }

        public void setDescripcion(string TipoItem, string MARCA, string MODELO)
        {
            this.DESCRIPCION_ITEM = TipoItem + " " + MARCA + " " + MODELO;
        }

        [DisplayName("Precio")]
        [DataType(DataType.Currency)]
        public int? PRECIO { get; set; }

        [UIHint("Numero")]
        [DisplayName("Cantidad")]
        [Range(1, Int32.MaxValue, ErrorMessage = "Ingrese un valor entre {0} y {1}")]
        public int CANTIDAD { get; set; }
        
        [DisplayName("Subtotal")]
        [HiddenInput(DisplayValue = true)]
        [DataType(DataType.Currency)]
        public int SUBTOTAL { get; set; }
	}

    public class EditFacturaVentaDirectaViewModel
    {
        public int id { get; set; }

        public string RazonSocial { get; set; }

        public FacturaInsiderViewModel Factura { get; set; }
    }
}